/*
 * Copyright (c) 2020 hebeiyiliuba.com
 * All rights reserved.
 *
 */
package org.jeecg.modules.wlhy.shipping.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.wlhy.hydriver.entity.HyDriver;
import org.jeecg.modules.wlhy.order.entity.HyOrder;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 在这里编写类的功能描述
 *
 * @author duanlikao
 * @created 2021/8/28
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ImportShippingNoteDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "公司")
    private String companyId;


    @Excel(name = "公司", width = 15)
    @ApiModelProperty(value = "公司")
    private String companyName;

    /**所属货主*/
    @Excel(name = "所属货主", width = 15)
    @ApiModelProperty(value = "所属货主")
    private String customerName;

    @ApiModelProperty(value = "所属货主")
    private String customerId;

    /**所属货源*/
    @ApiModelProperty(value = "所属货源")
    private String orderId;

    @Excel(name = "所属货源", width = 15)
    @ApiModelProperty(value = "所属货源")
    private String orderNum;

    /**司机*/
    @Excel(name = "司机", width = 15)
    @ApiModelProperty(value = "司机")
    private String driverName;

    /**身份证号*/
    @Excel(name = "司机身份证号", width = 15)
    @ApiModelProperty(value = "身份证号")
    private java.lang.String idcard;

    /**司机手机号*/
    @Excel(name = "司机手机号", width = 15)
    @ApiModelProperty(value = "司机手机号")
    private java.lang.String telephone;

    @ApiModelProperty(value = "司机")
    private String driverId;

    @ApiModelProperty(value = "司机银行卡id")
    private String driverBankId;

    @Excel(name = "司机银行卡", width = 15)
    @ApiModelProperty(value = "司机银行卡")
    private String bankNum;

    /**车辆*/
    @Excel(name = "车辆", width = 15)
    @ApiModelProperty(value = "车辆")
    private String vehicleNumber;

    @ApiModelProperty(value = "车辆")
    private String vehicleId;

    /**实际装载量*/
    @Excel(name = "实际装载量", width = 15,type = 4)
    @ApiModelProperty(value = "实际装载量")
    private BigDecimal goodsWeightLoading;
    /**实际卸货量*/
    @Excel(name = "实际卸货量", width = 15,type = 4)
    @ApiModelProperty(value = "实际卸货量")
    private BigDecimal goodsWeightUnloading;

    /**运费单价*/
    @Excel(name = "运费单价(收入)", width = 15,type = 4)
    @ApiModelProperty(value = "运费单价(收入)")
    private BigDecimal shippingUnitPrice;

    @Excel(name = "支付计划(0不使用1使用)", width = 15,type = 4)
    @ApiModelProperty(value = "支付计划(0不使用1使用)")
    private String izUsedPayPlan;

    @Excel(name = "首付运费", width = 15,type = 4)
    @ApiModelProperty(value = "首付运费")
    private BigDecimal costPay1;
    @Excel(name = "到付运费", width = 15,type = 4)
    @ApiModelProperty(value = "到付付运费")
    private BigDecimal costPay2;
    @Excel(name = "尾款运费", width = 15,type = 4)
    @ApiModelProperty(value = "尾款运费")
    private BigDecimal costPay3;

//    /**实付合计*/
//    @Excel(name = "应收金额", width = 15,type = 4)
//    @ApiModelProperty(value = "应收金额")
//    private BigDecimal costPayTotal;

    @Excel(name = "应付金额", width = 15,type = 4)
    @ApiModelProperty(value = "应付金额")
    private BigDecimal costPay;

    /**实际运费金额*/
    @Excel(name = "实付金额", width = 15,type = 4)
    @ApiModelProperty(value = "实付金额")
    private BigDecimal costPayShipping;

    /**运单状态(0待接单 1已接单 2装货中 3运输中 4已交货 5已签收8已作废)*/
    @Excel(name = "运单状态", width = 15, dicCode = "shipping_status")
    @Dict(dicCode = "shipping_status")
    @ApiModelProperty(value = "运单状态(0待接单 1已接单 2装货中 3运输中 4已交货 5已签收8已作废)")
    private String shippingStatus;
    /**创建日期*/
    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private String createTime;
    /**实际接单时间*/
    @Excel(name = "接单时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "实际接单时间")
    private String statusDtReceive;
    /**实际发货时间*/
    @Excel(name = "发货时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "实际发货时间")
    private String statusDtLoading;

    /**实际收货时间*/
    @Excel(name = "收货时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "实际收货时间")
    private String statusDtUnloading;
    /**实际签收时间*/
    @Excel(name = "签收时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "实际签收时间")
    private String statusDtSign;

    /**运费支付时间*/
    @Excel(name = "运费支付时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "运费支付时间")
    private String payDt;
    /**运单结算状态(0未对账 1核实中 2已对账 3已支付)*/
    @Excel(name = "运单结算状态", width = 15, dicCode = "shipping_pay_status")
    @Dict(dicCode = "shipping_pay_status")
    @ApiModelProperty(value = "运单结算状态(0未对账 1申请对账 2对账完成 3待审核 4审核完成 5申请支付 6支付完成  7支付失败 8驳回)")
    private String shippingPayStatus;

//    /**运输的总里程数*/
//    @Excel(name = "运输总里程数", width = 15)
//    @ApiModelProperty(value = "运输总里程数，单位为 公里。")
//    private String transportationDistance;

    /**发货详细地址*/
    @Excel(name = "发货详细地址", width = 50)
    @ApiModelProperty(value = "发货详细地址")
    private String sendAddress;

    /**收货详细地址*/
    @Excel(name = "收货详细地址", width = 50)
    @ApiModelProperty(value = "收货详细地址")
    private String receiveAddress;

    /**运单上报状态*/
    @Excel(name = "运单上报状态", width = 50)
    @ApiModelProperty(value = "运单上报状态")
    private String uploadStatus;

    @Excel(name = "原始系统运单号", width = 50)
    @ApiModelProperty(value = "原始系统运单号")
    private String orgShippingNumber;

    //Added at 2023-07-18 for 特殊导入模板增加合同编号、时间、图片导入
    @Excel(name = "合同照片", width = 15)
    @ApiModelProperty(value = "合同照片")
    private String shippingContract;

    @Excel(name = "合同编号", width = 15)
    @ApiModelProperty(value = "合同签订时间")
    private String contractNum;

    //Added at 2023-08-14 for 华邦导入油气费和油气充值方式
    @Excel(name = "油气充值方式(选填)", width = 15, dicCode = "izUsedGas")
    @ApiModelProperty(value = "油气充值方式(0不使用1万金油2油气卡3油气平台)")
    @Dict(dicCode = "izUsedGas")
    private String izUsedGas;

    @Excel(name = "油气费(选填)", width = 15,type = 4)
    @ApiModelProperty(value = "油气费")
    private String gasRechargeAmount;

    private HyOrder hyOrder;

    private HyDriver driver;

    //Added at 2025-02-11 for 特殊导入增加装卸货磅单照片
    /**装货凭证图片*/
    @Excel(name = "装货凭证照片", width = 15)
    @ApiModelProperty(value = "装货凭证照片")
    private String imgLoading;

    /**卸货凭证图片*/
    @Excel(name = "卸货凭证照片", width = 15)
    @ApiModelProperty(value = "卸货凭证照片")
    private String imgUnloading;

}
